package com.sun.filesigndemo.bussiness.mapper;


import com.sun.filesigndemo.baseMapper.MyMapper;
import com.sun.filesigndemo.common.security.model.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper extends MyMapper<Role> {
    /**
     * 查看所有角色和其权限
     * @return
     */
    List findAllRoleAllPermission();
    /**
     * 查看某个角色的所有权限信息和角色信息
     * @param rolename
     * @return
     */
    Role findAllRolePermissionByRolename(@Param("rolename") String rolename);

    /**
     * 删除某个角色 连带的角色权限表也会被级联删除相关数据
     * @param rolename
     */
    int deleteAllRolePermissionByRolename(@Param("rolename") String rolename);

    /**
     * 删除某个角色 连带的角色权限表也会被级联删除相关数据
     * @param roleid
     */
    int deleteAllRolePermissionByRoleId(@Param("rid") int roleid);

    /**
     * 删除某个角色的某个权限 (仅修改关系表)
     * @param rolename
     * @param permissionname
     */
    void deleteRolesPermissionByRoleAndPermission(@Param("rolename") String rolename, @Param("permissionname") String permissionname);

    /**
     * 删除某个角色的某个权限 根据id (仅修改关系表)
     * @param roleid
     * @param permissionid
     */
    int deleteRolesPermissionByRoleIdPermissionid(@Param("roleid") Integer roleid, @Param("permissionid") Integer permissionid);

    /**
     * 给某个角色添加某个权限
     * @param
     * @param
     */
    int insertPermissionToRole(@Param("rolelist") List list);

    int insertNewRole(Role role);

    int insertRole(Role role);

    /**
     * 更新角色关系表
     * @return
     */
}
